# 802.11be 架构革命:MLO(Multi-Link Operation)多链路发现与设置(Discovery & Setup) 本篇我们将继续深入 802.11be 标准的深水区,详细剖析 Discovery 流程和那个无处不在的 Multi-Link Element(MLE)。 如前面学习,在 MLO 的世界里,有两个核心概念: - MLD(Multi-Link Device):多链路设备,指整个逻辑实体(比如你的 802.11be 路由器或手机)。 - Affiliated AP/STA:MLD 内部负责具体频段通信的物理实体(比如路由器/手机里负责 5GHz 射频的那部分电路)。 MLO 的连接建立过程主要分为四个阶段:发现(Discovery)-> 认证(Authentication)-> 关联(Association)-> 密钥协商(4-Way Handshake)。 ## 发现(Discovery)——“扫一眼,全看见” 在 802.11ax 时代,必须分别扫描 2.4G 和 5/6G 才能知道路由器的所有信息。但在 802.11 MLO 时代,虽然传统的“主动扫描(Probe Request)”和“被动扫描(Beacon)”依然存在,但为了效率,MLO 只需要扫描一个频段,就能获取所有频段的信息。 ### 跨链路发现逻辑 ![](media/640-1772417469018.webp) **图注**:MLO 发现标准时序图,Non-AP MLD(手机)只在 2.4GHz 发送了(ML)Probe Request,AP 就回复了包含所有链路信息的(ML)Probe Response。 - 单链路扫描,多链路发现:Non-AP MLD 不需要去扫描 5/6GHz。它只需要在 2.4GHz(或其他任意一个主链路)上收到 AP 的 Beacon,或者发送一个携带 Basic Multi-Link Element 的 Probe Request 帧。 - RNR 的指引:即使是在普通的 Beacon 帧中,AP 也会携带 Reduced Neighbor Report(RNR)元素。在 802.11be 中,RNR 被扩展了,它不仅能报告邻居 AP,还能报告 “同一 MLD 下的其他 AP”。 - - 技术细节:RNR 中的 TBTT Information Header 包含 MLD Parameters,可以直接告诉手机其他链路的 Link ID、BSSID 和 Channel 。 了解了宏观的发现流程,我们必须钻进微观的数据包里看一看。这一切的魔法,都藏在一个名为 Multi-Link Element 的字段中。 ## 核心数据结构:Multi-Link Element(MLE)深度解剖 这是 MLO 的灵魂。Multi-Link Element(MLE)是 802.11be 协议栈中最重要的载体,它出现在 Probe Response、Association Request/Response 等几乎所有关键管理帧中。 它的设计非常精妙,采用了“继承(Inheritance)”和“上下文(Context)”机制来压缩数据量。 ![](media/640-1772417634191.webp) 图注:MLE 的顶层结构:Common Info + Link Info(包含多个 Per-STA Profile)。 MLE 的总体结构如上所示,其 Element ID 是 255(Extension),Element ID Extension 是 107。其 Payload 分为两大部分: - Common Info(公共信息):描述 MLD 层面的共有属性,或者所有链路的默认属性。 - Link Info (链路信息):包含其他所有附属 AP 的 Per-STA Profile(每站点配置),描述每个具体链路的差异化属性。 如下是 ML Probe Request/Response 的帧结构: ![](media/640-1772417704599.webp) ![](media/640-1772417720540.webp) **注意**:只有支持 11be 的设备发出的(ML)Probe Request 才会触发包含完整 MLE 信息的(ML)Probe Response,否则老设备只能收到传统的 Response。 ### Multi-Link Control 字段详解 这是解析 MLE 的第一把钥匙。 ![](media/640-1772417764071.webp) 它包含两个关键子字段: - Type(3 bits):决定这个 MLE 的用途。 - - 0:Basic Multi-Link Element(最常用,用于 Beacon/关联/发现) - - 1:Probe Request Multi-Link Element(终端发 Probe Req 时用) - - 2:Reconfiguration Multi-Link Element (用于动态添加/删除链路) - - 3:TDLS Multi-Link Element - - 4:Priority Access Multi-Link Element - ![](media/640-1772417909182.webp) - Presence Bitmap(12 bits):位图掩码。 - - 它的每一位对应 Common Info 字段中某个子字段是否存在。 - - 设计意图:如果 Common Info 中某个参数(比如 AP MLD ID)没必要发,把对应的 bit 置 0。 ### Common Info 字段详解 所有链路的“公分母”。 ![](media/640.png) - 关键子字段解析: - - MLD MAC Address(6 octets): - - - 重点:MLD 的逻辑 MAC 地址,这是 MLD 的身份证。在 MLO 建立连接后,数据加密用的 Key 是与这个地址绑定的,而不是与具体的 Link Address 绑定。 - - - 补充:MLD MAC 并不用于无线空口的传输地址(TA/RA),它主要用于上层管理和密钥派生。 - - Link ID Info(Optional): - - - 用于指示“当前发送这个帧的 AP”对应的是哪个 Link ID,这解决了“我是谁”的问题。 - - BSS Parameter Change Count(BPCC): - - - 高阶技巧:如果任何“附属 AP”的参数发生变化(比如 Link 2 换信道了,或者 Link 3 的 EDCA 参数变了),这个计数器就会加 1。 - - - 作用:让休眠的设备醒来后,看一眼这个计数器就知道其他频段有没有变,如果没变,它就完全不需要重新读取 Link 2/3 的详细信息,直接复用缓存即可,无需遍历所有 Link。 - - EML Capabilities:EML 能力。指示是否支持 EMLSR(增强型单射频多链路)或 EMLMR,这对手机等电池供电设备至关重要。 - - MLD Capabilities: - - - MLD 级能力。例如最大同时支持几条链路(Max Simultaneous Links)、是否支持 STR(同发同收)。 - - AP MLD ID - - - 当一个物理 AP 属于多个逻辑 AP MLD(多 BSSID 场景)时,用此 ID 区分。 ### Link Info 字段(Per-STA Profile):链路信息 这是 MLE 中最庞大的部分。它由一系列的 Subelements(子元素)组成,最主要的就是 Per-STA Profile(Subelement ID = 0)。 每个 Per-STA Profile 代表一个链路 Link(例如 5GHz Link 或 6GHz Link),也展示了 802.11be 协议设计的极简主义美学。 ![0](media/640-1772418075432.png) Subelement Header 字段 - Sub-ID(1 byte):0 表示 Per-STA Profile。 - Length(1 byte):长度。 STA Control(2-4 bytes)——链路级的控制器 类似于外层的 Multi-Link Control,这个字段控制当前 Profile 内部有哪些字段。 ![0](media/640-1772418075414.png) - Link ID(0 ~ 14):明确指出这个 Profile 描述的是哪条链路(例如 Link ID = 1 指向 5GHz 低频段)。 - Complete Profile :这是一个极其关键的标志位! - - 置 1(Complete):完整配置。表示该 Profile 包含了该链路的所有完整信息(就像一个完整的 Beacon)。通常用于 Association/Response 中,确保客户端拿到所有参数。 - - 置 0(Partial):部分配置。表示该 Profile 仅包含与当前发送 Link 不同的参数(增量更新)。 STA Info(变长) ![0](media/640-1772418075446.webp) - STA MAC Address:该 Link 对应的物理 MAC 地址(BSSID)。 - Beacon Interval:该 Link 的信标间隔。 - TSF Offset:时间同步功能偏移量。因为不同频段的 Beacon 发送时间不同,需要这个偏移量来对齐时间。 - NSTR Indication Bitmap:指示该 Link 与其他 Link 组合时是否是 NSTR(非同时收发)关系。 STA Profile(变长)——继承与压缩的艺术 这里存放该 Link 具体的 IE(Information Elements),如 SSID,Current Channel,EDCAParameterSet 等。 看懂这里才算真正的懂 MLE,802.11be 的“继承(Inheritance)”机制在这里发挥巨大的作用,就像写代码时的全局变量与局部变量,如果局部(Per-STA Profile)没定义,就默认使用全局(Common Info)或者主链路的配置。这能极大节省空口开销。例如: - 某个参数(比如 SSID 或 Country Code)在所有 Link 上都一样,那么在非主 Link 的 Profile 中就不包含这些 IE。 - 接收端(手机)在解析 Per-STA Profile 时,没有某个元素(比如 DTIM Period),但 Common Info 里有或者是默认值,则认为该链路使用默认值。 - 从“传输链路”继承: 如果我在 Link 1(2.4G)收到了这个 MLE,且 Link 2(5G)的 Profile 是 Partial 的。那么 Link 2 中缺失的参数(如 SSID),默认与 Link 1 相同。 - - 这就是为什么你在配置 MLD AP 时,通常要求所有频段 SSID 相同,因为协议层面上这样最省开销! ## 连接建立流程:ML Setup 万事俱备,开始握手。MLO 的连接建立复用了 802.11 的 Open System Authentication + Association 流程,但内容大有乾坤。 ![0](media/640-1772418128081.webp) 图注:这是最标准的 ML Setup 时序图,清晰地展示了 Non-AP MLD 如何通过 Link 1 建立起 Link 1, 2, 3 的连接。 1. **第一步:认证(Authentication)—— “一次刷脸,全家通行”** 在 MLO 中,认证是发生在 MLD(设备)级别的,而不是链路级别的。 - 交互:只需要在一个链路(例如 Link 1)上进行。例如手机(Non-AP MLD)在 Link 1 上,通过该链路上的 Affiliated STA 发送 Authentication Request 帧。 - SAE / Open System:如果使用 WPA3-Personal (SAE),密码验证也是基于 MLD MAC 地址计算的。 - 地址:帧头里的 RA/TA 是 Link Address,但帧体(Frame Body)里携带的 MLE 包含了 MLD MAC Address。双方由此绑定了“物理链路”和“逻辑设备”。 - 状态同步:一旦认证成功,双方在逻辑上就建立了“MLD 级别”的信任关系。此时,所有附属的 STA(Link 1, 2, 3...)的状态都会同步更新为“已认证”。 2. **第二步:关联(Association)—— “谈判与签约”** 双方要协商:“我们到底要同时用哪几条路?”。连接依然是在单条链路(例如 Link 1)上进行的,但协商内容覆盖所有链路。 - (Re)Association Request(手机发给路由): - - Basic Multi-Link Element: - - - Common Info:携带手机的 MLD MAC 地址、MLD 能力(如是否支持 STR 同发同收)。 - - - Link Info(Per-STA Profile):这是重点!手机会列出它请求建立连接的所有链路(例如 Link 1, Link 2, Link 3)。每个 Profile 里包含了该频段对应的 Station 能力(EHT Capabilities)。 - (Re)Association Response(路由回给手机): - - Basic Multi-Link Element: - - - 确认链路:AP MLD 会检查手机请求的链路。如果 AP 同意,就在回包里包含对应的 Per-STA Profile,并返回 Status Code = SUCCESS。 - - - 拒绝链路:如果 AP 觉得某个频段拥堵或不支持,可以不包含该链路的 Profile,或者返回拒绝状态码。 一旦关联成功,双方就正式建立了 Setup Links(已建立链路)。系统会为 Non-AP MLD 分配一个唯一的 AID(Association ID),这个 AID 在所有 Setup Links 上是通用的。 3. **第三步:密钥协商 (4-Way Handshake) —— “一把总钥匙,多把分钥匙”** MLO 的密钥体系设计非常独特:单播用一把总钥匙,组播用多把分钥匙。 - PTK(单播密钥) —— MLD 级统一 - - 协商对象:AP MLD 和 Non-AP MLD。 - - 过程:4 次握手在主链路(Link 1)上进行。 - - 原理:生成的 PTK(Pairwise Transient Key)是基于双方的 MLD MAC 地址 计算的。 - - 结果:这个 PTK 被安装到所有 Setup Links 上。无论你在 2.4G 还是 6G(单播数据),用的都是同一把 PTK 加密。这保证了数据在不同链路间无缝切换时,无需重新协商密钥。 - GTK/IGTK(组播/广播密钥)—— Link 级独立 - - 问题:每个频段的广播数据(如 ARP 请求、Beacon)必须让该频段上的所有设备都能解密,包括那些不支持 MLO 的老旧设备。 - - 解决方案:每个频段(Link)必须有自己独立的 GTK(Group Temporal Key)。 - - 分发:在 4 次握手的第 3 步(M3)或者组密钥握手中,AP 会通过 MLO GTK KDE 元素,一次性把所有 Link 的 GTK 打包发给终端。 - - - 补充:“在 MLO 场景下,M3 帧可能会携带多个 Link 的 GTK(通过 MLO GTK KDE),这是与 802.11ax 最大的区别之一。 - - - Payload 示例:Link ID 1: GTK_A; Link ID 2: GTK_B... ## 流量调度(TTLM)—— 多链路的“交通指挥官” 路修好了,车怎么跑?这就涉及 TID-to-Link Mapping (TTLM)。不同的业务(TID,如语音、视频、下载)跑在不同的链路上。 这个规则可以在关联阶段(Association Request/Response)协商,也可以在连接建立后通过Action 帧动态调整。例如: - 场景 A:AP 接受建议。STA 在关联请求中带上 TTLM IE,说:“我想把视频跑在 6G,语音跑在 5G”。AP 回复“Success”,双方达成一致。 - 场景 B:AP 觉得此方案不行,然后回复“Preferred Mapping”(状态码 134),并给出一套建议方案。STA 通常会接受这个新方案。 - 场景 C:强制拆除(Teardown)。如果某条链路拥堵或需维护,AP 可以发送 TTLM Teardown 帧,强制 STA 回退到默认映射模式。